Array.prototype.filter = function (fn) {
  const result = [];
  for (let i = 0; i < this.length; i++) {
    if (!this.hasOwnProperty(i)) continue; // 处理稀疏数组的情况
    fn(this[i], i, this) && result.push(this[i]);
  }
  return result;
};

// 使用
const arr = [1, 2, 3, , 5];
const filterArr = arr.filter((item) => item > 2);
console.log(filterArr);